import { evalString } from '../evalString/evalString';
/**
 * 用户指定模板
 * @param {Object} model
 * @param {Map} keyVFunc 用户指定 模板 检索字符 构造函数 自动 Bind fromPo toPo retrun {对应的 字符表}
 */
function useKeyframeModel(model, keyVFunc) {
  let kVF = keyVFunc;
  let mod = model;

  /**
   *
   * @param {Function} newKeyVFunc 新替换的函数
   */
  function changeKeyVFunc(newKeyVFunc) {
    kVF = newKeyVFunc;
  }
  function reBuildModelByEval() {
    console.log(arguments[0], kVF.call(arguments[0]));
    return evalString(mod, kVF.call(arguments[0]));
  }

  return {
    changeKeyVFunc,
    get model() {
      return mod;
    },
    get keyVFunc() {
      return kVF;
    },
    entryKVFforModel: reBuildModelByEval,
  };
}

// function kvTest() {
//   let that = this;
//   return {
//     a63: that.Af,
//     b74: that.Bf,
//   };
// }

// let tesu = useKeyframeModel(
//   '我们 是 一个大家庭 由 &{ a63 + 8  }& 个人组成，是 &{ b74 }& 个大人 &{ a63 - b74 }& 个小孩',
//   kvTest
// );

export { useKeyframeModel };
